From fdba244c387d941279ed61ebc658c91f4f3d6025 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 6 Jan 2016 22:05:29 -0500 Subject: [PATCH] Add the caret-color CSS property This property is defined in http://www.w3.org/TR/css3-ui/#caret-color. We also add a -gtk-secondary-caret-color property, since GTK+ has supported differently colored split cursors in the past. Unlike CSS, we don't support the weakly defined auto keyword, and just use currentColor as the initial value. --- gtk/gtkcsscolorvalue.c | 2 ++ gtk/gtkcssstylepropertyimpl.c | 20 +++++++++++++++++++- gtk/gtkcsstypesprivate.h | 2 ++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/gtk/gtkcsscolorvalue.c b/gtk/gtkcsscolorvalue.c index 6cd0cf0447..9679fd8324 100644 --- a/gtk/gtkcsscolorvalue.c +++ b/gtk/gtkcsscolorvalue.c @@ -122,6 +122,8 @@ gtk_css_value_color_get_fallback (guint property_id, case GTK_CSS_PROPERTY_BORDER_BOTTOM_COLOR: case GTK_CSS_PROPERTY_BORDER_LEFT_COLOR: case GTK_CSS_PROPERTY_OUTLINE_COLOR: + case GTK_CSS_PROPERTY_CARET_COLOR: + case GTK_CSS_PROPERTY_SECONDARY_CARET_COLOR: return _gtk_css_value_compute (_gtk_css_style_property_get_initial_value (_gtk_css_style_property_lookup_by_id (property_id)), property_id, provider, diff --git a/gtk/gtkcssstylepropertyimpl.c b/gtk/gtkcssstylepropertyimpl.c index bd7f664475..fa86507aaa 100644 --- a/gtk/gtkcssstylepropertyimpl.c +++ b/gtk/gtkcssstylepropertyimpl.c @@ -1801,5 +1801,23 @@ G_GNUC_END_IGNORE_DEPRECATIONS bindings_value_assign, _gtk_css_array_value_new (_gtk_css_string_value_new (NULL))); _gtk_style_property_add_alias ("-gtk-key-bindings", "gtk-key-bindings"); -} + gtk_css_style_property_register ("caret-color", + GTK_CSS_PROPERTY_CARET_COLOR, + GDK_TYPE_RGBA, + GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED, + GTK_CSS_AFFECTS_TEXT, + color_parse, + color_query, + color_assign, + _gtk_css_color_value_new_current_color ()); + gtk_css_style_property_register ("-gtk-secondary-caret-color", + GTK_CSS_PROPERTY_SECONDARY_CARET_COLOR, + GDK_TYPE_RGBA, + GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED, + GTK_CSS_AFFECTS_TEXT, + color_parse, + color_query, + color_assign, + _gtk_css_color_value_new_current_color ()); +} diff --git a/gtk/gtkcsstypesprivate.h b/gtk/gtkcsstypesprivate.h index 1660db8536..082b3f6674 100644 --- a/gtk/gtkcsstypesprivate.h +++ b/gtk/gtkcsstypesprivate.h @@ -222,6 +222,8 @@ enum { /*< skip >*/ GTK_CSS_PROPERTY_ICON_PALETTE, GTK_CSS_PROPERTY_ENGINE, GTK_CSS_PROPERTY_GTK_KEY_BINDINGS, + GTK_CSS_PROPERTY_CARET_COLOR, + GTK_CSS_PROPERTY_SECONDARY_CARET_COLOR, /* add more */ GTK_CSS_PROPERTY_N_PROPERTIES }; -- 2.30.2